<?php
class AlumnosController extends AppController {
	var $name = 'Alumnos';
	var $helpers = array('html', 'Flowplayer');

	function beforeFilter() {
		parent::beforeFilter();
		$this -> Auth -> allowedActions = array('*');
	}
	

	function index() {
		$alumno = $this -> Alumno -> findByUsuarioId($this -> Auth -> user('id'));
		$cursos = $this -> Alumno -> Inscripto -> findAllByAlumnoId($alumno['Alumno']['id']);
		$this->set('alumno', $alumno);
		$this->set('cursos', $cursos);
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid alumno', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('alumno', $this -> Alumno -> read(null, $id));
	}

	function registrar() {
		if (!empty($this->data)) {
			$this -> Alumno -> Usuario -> create();
			
			// verifico que la confirmación de la contraseña no esté vacía para luego encriptarla.
			if ($this -> data['Usuario']['contrasenia_confirmar'] != '') {
				// se encripta la confirmación para hacer uso de la validación de igual, 
				// ya que el campo contraseña se encripta por defecto. 
				$this -> data['Usuario']['contrasenia_confirmar'] = $this -> Auth -> password($this -> data['Usuario']['contrasenia_confirmar']);
				
				if ($this -> Alumno -> Usuario -> save($this -> data)) {
					$this -> Alumno -> create();
					$this -> data['Alumno']['usuario_id'] = $this -> Alumno -> Usuario -> id;
					if ($this -> Alumno -> save($this->data)) {
						$this->Session->setFlash(__('¡Registro Completo!', true));
						$this->redirect(array('action' => 'index'));
					}
				} else {
					$this->Session->setFlash(__('El registro no se ha completado. Prueba otra vez.', true));
				}
			}
		}
		# es necesario mandarle a la vista los cursos y los grupos asociados para que los pueda mostrar en el formulario.
		// seteo los cursos
		$cursos = $this->Alumno->Curso->find('list');
		$this->set(compact('cursos'));
		// seteo los grupos
		$grupos = $this->Alumno->Usuario->Grupo->find('list');
		$this->set(compact('grupos'));
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid alumno', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->Alumno->save($this->data)) {
				$this->Session->setFlash(__('The alumno has been saved', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The alumno could not be saved. Please, try again.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Alumno->read(null, $id);
		}
		$cursos = $this->Alumno->Curso->find('list');
		$this->set(compact('cursos'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for alumno', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Alumno->delete($id)) {
			$this->Session->setFlash(__('Alumno deleted', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Alumno was not deleted', true));
		$this->redirect(array('action' => 'index'));
	}
}
?>